import {deepCopy} from "@/utils";

export default {
  name: 'GoodsSizePriceMixin',
  data(){
    return {
      defaultGoodsSizeStickerPrice: {
        weight: 0, // 重量
        PSCFirst: 0, // 首件PSC
        PSCAppend: 0, // 续件PSC
        type: 'num',
        weightFirst: 0,
        weightAppend: 0,
      }, // 商品体积重
    }
  },
  methods:{
    // 添加重量
    addGoodsSizePrice(goodsSizePrice) {
      goodsSizePrice.push(deepCopy(this.defaultGoodsSizeStickerPrice))
    },
    // 移除某个重量范围
    removeGoodsSizePrice(goodsSizePrice, index){
      goodsSizePrice.splice(index,1)
    },
    /**
     * 校验数据是否正常
     * @param goodsSizePrice
     * @returns {boolean}
     */
    checkGoodsSizePriceData(goodsSizePrice){
      if(goodsSizePrice.length === 0){
        this.$errorMessage('请至少填写一个体积重价格')
        return false;
      }
      const weight = []; // 校验是否有重复的商品重量
      const flag = goodsSizePrice.some(item=>{
        // 没填的数值默认为0
        item.weight = item.weight ? item.weight : 0;
        item.PSCFirst = item.PSCFirst ? item.PSCFirst : 0;
        item.PSCAppend = item.PSCAppend ? item.PSCAppend : 0;
        if(weight.indexOf(item.weight) !== -1){
          return true
        }else{
          weight.push(item.weight)
          return false
        }
      })
      // 校验没通过代表有相同的重量
      if(flag){
        this.$errorMessage('一件代发服务存在相同的商品重量')
        return false;
      }
      return true
    }
  }
}
